package cn.lili.controller.store.other;

import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;

public class InboxReader {

    public List<Message> ReadMailByIMAP(String username, String Password) //返回list类型的电子邮件列表。
    {
        java.util.List MessageList = new ArrayList();
        Properties props = System.getProperties();
        props.setProperty("mail.store.protocol", "imaps");//设置电子邮件协议

        try {
            Session session = Session.getDefaultInstance(props, null);
            Store store = session.getStore("imaps");
            store.connect("imap.gmail.com", username, Password);
            System.out.println(store);

            Folder inbox = store.getFolder("Inbox");
            inbox.open(Folder.READ_ONLY);
            Message messages[] = inbox.getMessages();
            for (Message message : messages) {
                MessageList.add(message);
                //System.out.println(message.getSubject());
            }
        } catch (NoSuchProviderException e) {
            e.printStackTrace();
            System.exit(1);
        } catch (MessagingException e) {
            e.printStackTrace();
            System.exit(2);
        }
        return MessageList;

    }

    public static void main(String args[]) {
        InboxReader ir = new InboxReader();
        String username ="tianya59840@gmail.com";//设置用户名
        String Password = "fyDLphuDIUQxt3vD7x";//设置密码
        List<Message> list= ir.ReadMailByIMAP(username, Password);
        for(int i=0;i<list.size();i++){
            try {
                System.out.println(list.get(i).getSubject());
            } catch (MessagingException ex) {
                Logger.getLogger(InboxReader.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}
